package com.zym.init.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zym.init.model.dto.PageDTO;
import com.zym.init.model.po.ResourcePo;
import com.zym.init.model.query.ResourceQuery;
import com.zym.init.model.vo.ResourceVo;

import java.util.List;

/**
* @author zou
* @description 针对表【resource(资源表)】的数据库操作Service
* @createDate 2024-11-13 22:35:35
*/
public interface ResourceService extends IService<ResourcePo> {
    /**
     * 获取列表
     *
     * @return 列表
     */
    PageDTO<ResourceVo> getPage(ResourceQuery query);

    /**
     * 新增
     */
    boolean add(ResourceQuery query);

    /**
     * 检查目录是否存在
     *
     * @param path 目录路径
     */
    boolean checkDirectory(String path);

    /**
     * 删除
     */
    boolean deleteBatchByIds(List<Long> ids);

    /**
     * 获取面包屑列表
     *
     * @param id 资源id
     */
    List<ResourceVo> getBreadcrumb(Long id);

    /**
     * 编辑
     */
    boolean edit(ResourceQuery query);

    /**
     * 获取资源对象
     */
    ResourcePo getById(Long id);

    /**
     * 获取加密id
     *
     * @param id 资源id
     * @return 加密id
     */
    String getEncryptionId(Long id);

    /**
     * 创建目录
     *
     * @param rootId 根目录ID
     * @param path 目录路径 如：a/b/c/d
     * @return 目录id
     */
    Long createDirectory(Long rootId, String path);
}
